package com.bicon.base.data.service.quartz.task;

import java.util.List;
import java.util.Map;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

import com.bicon.base.data.common.StringTools;
import com.bicon.base.data.common.exception.BusinessException;
import com.bicon.base.data.common.tools.DateUtil;
import com.bicon.base.data.face.UserScoreFace;
import com.bicon.base.data.pojo.botu.TAUser;
import com.bicon.base.data.pojo.botu.THUserDrug;
import com.bicon.base.data.pojo.botu.THUserSleep;
import com.bicon.base.data.util.IndexUtil;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import com.google.common.collect.Sets;

@Component("ryTask")
public class QuartzTestJob {
	
	private Logger logger = LoggerFactory.getLogger(this.getClass()); 
	
private static final String HEIGHT_CODE = "BZZB_TZ_TZ" ;
	
	private static final String WEIGHT_CODE = "BZZB_TZ_SG" ;
	
	private static final String AGE_CODE = "AGE" ;
	
	@Autowired
	private UserScoreFace userScoreFace;
	
    private List<THUserSleep> getTHUserSleepRecord(String uid){
		
		return userScoreFace.getThuserSleepService().findTHUserSleepsByUid(uid);
	}
	
    private List<THUserDrug> getTHUserDrugRecord(String uid){
		
		return userScoreFace.getThuserDrugService().findTHUserDrugByUid(uid);
	}
	
	public void noParam() {
		logger.info("无参数调用");
	}
	
	public void hasParam(String str) {
//		logger.info("开始定时任务,当前时间:{}",DateUtil.now(DateUtil.format4));
//		try {
//			List<TAUser> list = userScoreFace.getUserService().findTAUser();
//			Map<String, Map<String,List<String>>> multimap = Maps.newHashMap();
//            if(!list.isEmpty()) {
//            	//进行一次去重操作
//              List<TAUser> filter_List = Lists.newArrayList(Sets.newHashSet(list));
//    		  for(int i = 0;i<filter_List.size();i++) {
//    			TAUser tauser = filter_List.get(i);
//    			String code = tauser.getDictionary_code();
//    			int age = DateUtil.getyearIntevalYears(DateUtil.now(DateUtil.format2), tauser.getBirthday(),DateUtil.format2);
//    			Map<String,List<String>> valueMap = multimap.get(tauser.getId());
//    			if(null == valueMap) {
//    				valueMap = Maps.newHashMap();
//    			}
//    			if(null == valueMap.get(code)) {
//    				
//    				List<String> values = Lists.newArrayList();
//    				
//    				valueMap.put(code, values);
//    			}
//    			if(null == valueMap.get(AGE_CODE)) {
//    				List<String> values = Lists.newArrayList();
//    				values.add(age+"_"+"岁");
//    				valueMap.put(AGE_CODE, values);
//    			}
//    			List<String> li = valueMap.get(code);
//    			li.add(tauser.getIndex_value()+"_"+tauser.getIndex_unit());
//    			valueMap.put(code, li);
//    			
//    			multimap.put(tauser.getId(), valueMap);
//    			
//    		  }
//            	
//            }	
//            
//            //以后可以进行多线程计算，当前没有必要这么做
//            if(!multimap.isEmpty()) {
//            	//获得每位用户的具体指标数据
//            	for(String key : multimap.keySet()) {
//            		String userid  = key;
//            		Map<String,List<String>> indexValue = multimap.get(key);
//            		//获取身高
//            		 String height = StringTools.mkString(indexValue.get(HEIGHT_CODE).get(0).split("_")[0]);
//            		 String weight = StringTools.mkString(indexValue.get(WEIGHT_CODE).get(0).split("_")[0]);
//            		 String age = StringTools.mkString(null == indexValue.get(AGE_CODE) ?"":indexValue.get(AGE_CODE).get(0).split("_")[0]);
//            		 logger.info("当前用户编号:{},身高:{},体重:{},年龄:{}",new String[] {userid,height,weight,age});
//            		//每天的打分
//            		 //基础健康评分
//            		 IndexUtil.healthscore(Double.parseDouble(height),  Double.parseDouble(weight), Double.parseDouble(age));
//            		 //血糖影响(空腹),需要血压值
//            		 //IndexUtil.bloodpressureImpact();
//            		 //高压
//            		 //IndexUtil.InfluenceOfbloodpressureforhighpressure();
//            		//低压
//            		 //IndexUtil.InfluenceOfbloodpressureforlowpressure();
//            		 //心率影响
//            		 //IndexUtil.heartrate();
//            		 //体温评分
//            		 //IndexUtil.temperaturescore()//
//            		 //睡眠评分
//            		 List<THUserSleep> sleepRecords = this.getTHUserSleepRecord(userid);
//            		 if(!sleepRecords.isEmpty()) {
//            			 for(THUserSleep sleep : sleepRecords) {
//            				 String start = sleep.getStartTime();
//            				 String end = sleep.getEndTime();
////            				 int deep_time = sleep.getDeep_sleep_time();
////            				 int sleep_time = sleep.getSleep_time();
//            				
//            			 }
//            		 }
//            		 //IndexUtil
//            		 
//            		 //用药评分
//            		 List<THUserDrug> drugRecords = this.getTHUserDrugRecord(userid);
//         			//IndexUtil.dayscore(Double.parseDouble(tauser.getHeight()),  Double.parseDouble(tauser.getWeight()), (double)age, bloodvalue, afterbloodvalue, highpressurevalue, lowpressurevalue, heartrate, temperature, sleepScore, drugusescoreforsum)
//            	}
//            }
//            //计算基础健康指标
//			//
//			//获取
//			
//		}catch(BusinessException ex) {
//			ex.printStackTrace();
//			logger.info("系统发生错误,错误原因:{}",ex.getMsg());
//		}
//		logger.info("结束定时任务,当前时间:{}",DateUtil.now(DateUtil.format4));
	}
}
